#ifndef __ST1633_H__
#define __ST1633_H__

#include "main.h"
typedef uint8_t u8;
typedef uint16_t u16;

#define X_RES_H_SHFT 4
#define X_RES_H_BMSK 0xf
#define Y_RES_H_SHFT 0
#define Y_RES_H_BMSK 0xf

//与电容触摸屏连接的芯片引脚(未包含IIC引脚) 
//IO操作函数	 
#define ST_RST    				PCout(4)	//ST1633复位引脚
#define ST_INT    				PCin(5)		//ST1633中断引脚	

//I2C读写命令	
#define ST_CMD_WR 				0xaa    	//写命令
#define ST_CMD_RD 				0xab			//读命令

//ST1633 部分寄存器定义 
#define ST_DEVIDE_MODE 			0x00   		//ST1633模式控制寄存器
#define ST_REG_STATUS       0x01			//触摸状态寄存器
#define ST_DEVIDE_CTRL 			0x03   		//ST1633控制寄存器
#define XY_RESOLUTION_HIGH  0x04			//触摸结果高位
#define X_RESOLUTION_LOW  	0x04			//触摸结果低位X
#define Y_RESOLUTION_LOW  	0x04			//触摸结果低位Y

#define FIRMWARE_REVISION_3 0x0C
#define FIRMWARE_REVISION_2 0x0D
#define FIRMWARE_REVISION_1 0x0E
#define FIRMWARE_REVISION_0 0x0F

#define ST_TP1_REG 				0X03	  	//第一个触摸点数据地址
#define ST_TP2_REG 				0X09		//第二个触摸点数据地址
#define ST_TP3_REG 				0X0F		//第三个触摸点数据地址
#define ST_TP4_REG 				0X15		//第四个触摸点数据地址
#define ST_TP5_REG 				0X1B		//第五个触摸点数据地址  

//#define	ST_ID_G_LIB_VERSION		0xA1		//版本		
#define	ST_ID_G_LIB_VERSION		0x00		//版本
#define ST_ID_G_MODE 			0xA4   		//ST1633中断模式控制寄存器
#define ST_ID_G_THGROUP			0x80   		//触摸有效值设置寄存器
#define ST_ID_G_PERIODACTIVE	0x88   		//激活状态周期设置寄存器


#define ST_MAX_TOUCH_NUM        0x3F    //最大支持的触点数


extern int ST1633_Init(void);
extern void st1633_tests(void);
void ST1633_RD_Reg(u16 reg, u8 *buf, u8 len);
#endif //__ST1633_H__